package org.example;

import java.util.Scanner;

public class Main {
    // 实例变量
    String name;
    // 类变量
    static int age;
    public static void main(String[] args) {
        // 局部变量
        String sex = "man";
        System.out.println("Hello world!");
        // 二进制
        int a = 0b1010;
        // 十六进制
        int b = 0x10;
        // 八进制
        int c = 010;
        // 十进制
        int d = 10;
        System.out.println("二进制：" + a + "十六进制：" + b + "八进制：" + c + "十进制：" + d);
        // 数字可以使用下划线分割
        int money = 10_0000_0000;
        int year = 20;
        // 先进行int类型的运算，将结果算出，再进行long类型的转换，所以会出现内存溢出
        long result = money * year;
        long result2 = money * (long) year;
        System.out.println("内存溢出结果：" + result + "\n正确结果：" + result2);

        // 直接输入
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入你的名字：");
        String name = scan.next();
        System.out.println("你好：" + name);
        if (scan.hasNext()) {
            String next = scan.next();
            System.out.println("你好：" + next);
        }

        // 默认的hasNext()方法会一直等待，直到输入#才结束，该方法的逻辑是判断下一个字符是否为标记的符号，如果是的话则为true，否则为false
        // 并且在hasNext()方法中，你输入的hello world会分别输出两次，因为#之前有空格，所以会输出两次
        while (!scan.hasNext("#")) {
            String next = scan.next();
            System.out.println("你好：" + next);
        }
        scan.close();
    }
}